在 Spring JDBC 中,會根據 SQL 語法區分成兩大類,分別是「update 系列」和「query 系列」。
因此大家如果想要執行的是 INSERT SQL,那就是得使用 update()
方法來執行,而如果想執行的是 SELECT SQL 的話,則是得改用 query()
方法來執行。
要使用 update()
方法去執行 INSERT、UPDATE、DELETE 這三種 SQL 語法的話,可以分成四個步驟來實作:
使用 update()
的第一步,就是要先在你的 Bean 裡面,去注入 NamedParameterJdbcTemplate 進來。
因此我們就可以在 StudentController 中,先使用 @Autowired
,去注入 NamedParameterJdbcTemplate 這個 Bean 進來(如下圖中的第 14~15 行所示)。
@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
在 StudentController 中注入好 NamedParameterJdbcTemplate 進來之後,接著第二步,就是去寫出我們想要執行的 SQL 語法。
String sql = "INSERT INTO student(id, name) VALUES (3, 'John')";
Map<String, object>
的 map 變數撰寫完想要執行的 SQL 語句之後,接著第三步,就是去新增一個類型為 Map<String, object>
的 map 變數出來。
Map<String, Object> map = new HashMap<>();
當前面的步驟都完成之後,最後要做的第四部,就是去使用 namedParameterJdbcTemplate 中的 update()
方法,並且把上面所宣告的 sql 和 map 這兩個變數,依照順序傳進去 update()
方法裡。
namedParameterJdbcTemplate.update(sql, map);
只要完成了這四個步驟,我們就完成了 Spring JDBC 的實作了!